iT邦幫忙

2021 iThome 鐵人賽

DAY 8
0
AI & Data

手寫中文字之影像辨識系列 第 8

【第8天】訓練模型-CNN與訓練方向

  • 分享至 

  • xImage
  •  

摘要

  1. CNN的來源
  2. 淺談CNN架構
  3. CNN的應用
  4. 訓練模型方向

內容

  1. CNN的來源

    1.1 啟發:動物視覺皮質組織與神經元間連結,到最後辨識物件的過程。

    1.2 以大腦識人臉為例,說明如下。

    • 訊號通過瞳孔,經神經元傳遞。

    • 初步處理訊號(底層特徵,如:偵測物件邊緣)

    • 抽象判斷(將底層特徵組合,判斷可能是哪個器官,如眼睛、嘴巴、鼻子)

    • 近一步抽象判斷(如:由這些器官組成的,可能是誰的臉?)

    1.3 訊號通過神經元傳遞後,大腦識別底層特徵(輪廓),組成進階特徵(器官)...層層遞進,最後區分不同物件(人臉)。CNN(卷積神經網路)即效仿該流程。

  2. 淺談CNN架構

    2.1 談到CNN,就不得不提到典型的VGG16,可以拆分成以下結構。

    圖片來自於:https://arbu00.blogspot.com/2018/03/7-tensorflowvgg-model-cifar10.html?m=1

    2.2 輸入層:以彩色影像為例,會有R、G、B三個通道。

    • 圖片尺寸:長 * 寬 * 通道數(如:224 * 224 * 3)

    2.3 卷積層(convolution):使用指定大小的卷積核與在圖片上移動,對輸入層的圖像作特徵擷取(矩陣相乘),如下圖。

    • 卷積核為3 * 3

    • 步輻為1

      圖片來自於:https://easyai.tech/ai-definition/cnn/

    2.4 啟動層:卷積層提取的特徵,藉由啟動函數(通常是RELU),從原本的線性關係(矩陣相乘)的特徵圖,轉化為非線性關係。

    2.5 池化層(pooling):進一步降低特徵維度,將圖像中特定區域以一個值代表。經常使用的方法為Max Pooling、Mean Pooling,可減少運算的參數量,在保留重要特徵的情況下,提升運算效率,防止模型過擬合。

    • Max pooling:取特定區域內最大值代表。

      圖片來自於:https://chtseng.wordpress.com/2017/09/12/%E5%88%9D%E6%8E%A2%E5%8D%B7%E7%A9%8D%E7%A5%9E%E7%B6%93%E7%B6%B2%E8%B7%AF/

    • Mean pooling:取特定區域內平均值代表。

    2.6 全連接層(fully connected):把二維特徵圖轉化成一維向量,以類似投票的方式輸出分類結果。

  3. CNN的應用:只要原始資料可以數值化,可應用在各種領域。

    3.1 影像處理:圖像由許多像數組成。

    3.2 語音處理:以語音訊號的聲譜圖,作為影像識別資料集。

    3.3 自然語言處理:將每個詞轉換成詞向量。

  4. 模型訓練方向

    4.1 考量

    • 圖檔數量大(train + test約19.3萬張),從頭訓練模型耗費時間。
    • 需要占用大量運算資源。
    • ImageNet預訓練模型,在不同的資料集上泛化能力佳。

    4.2 綜合以上因素,我們最終選擇以遷移學習的方法,進行此次手寫中文字訓練模型。


小結

下一章的目標是和大家分享:「什麼是遷移學習?如何進行遷移學習?」。

讓我們繼續看下去...


參考資料

  1. 卷積神經網路-CNN
  2. 初探卷積神經網路

上一篇
【第7天】訓練模型-前置作業
下一篇
【第9天】訓練模型-遷移學習
系列文
手寫中文字之影像辨識31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言